#ifndef GUARD_TRAINERS_H
#define GUARD_TRAINERS_H

#include "constants/opponents.h"
#include "constants/battle_frontier_trainers.h"

// Special Trainer Ids.
//      0-299 are frontier trainers
#define TRAINER_RECORD_MIXING_FRIEND        FRONTIER_TRAINERS_COUNT
#define TRAINER_RECORD_MIXING_APPRENTICE    400
#define TRAINER_EREADER                     500
#define TRAINER_FRONTIER_BRAIN              1022
#define TRAINER_PLAYER                      1023
#define TRAINER_SECRET_BASE                 1024
#define TRAINER_LINK_OPPONENT               2048
#define TRAINER_UNION_ROOM                  3072
#define TRAINER_STEVEN_PARTNER              3075
#define TRAINER_CUSTOM_PARTNER              3076

#define TRAINER_PIC_HIKER                  0
#define TRAINER_PIC_AQUA_GRUNT_M           1
#define TRAINER_PIC_POKEMON_BREEDER_F      2
#define TRAINER_PIC_COOLTRAINER_M          3
#define TRAINER_PIC_BIRD_KEEPER            4
#define TRAINER_PIC_COLLECTOR              5
#define TRAINER_PIC_AQUA_GRUNT_F           6
#define TRAINER_PIC_SWIMMER_M              7
#define TRAINER_PIC_MAGMA_GRUNT_M          8
#define TRAINER_PIC_EXPERT_M               9
#define TRAINER_PIC_AQUA_ADMIN_M          10
#define TRAINER_PIC_BLACK_BELT            11
#define TRAINER_PIC_AQUA_ADMIN_F          12
#define TRAINER_PIC_AQUA_LEADER_ARCHIE    13
#define TRAINER_PIC_HEX_MANIAC            14
#define TRAINER_PIC_AROMA_LADY            15
#define TRAINER_PIC_RUIN_MANIAC           16
#define TRAINER_PIC_INTERVIEWER           17
#define TRAINER_PIC_TUBER_F               18
#define TRAINER_PIC_TUBER_M               19
#define TRAINER_PIC_COOLTRAINER_F         20
#define TRAINER_PIC_LADY                  21
#define TRAINER_PIC_BEAUTY                22
#define TRAINER_PIC_RICH_BOY              23
#define TRAINER_PIC_EXPERT_F              24
#define TRAINER_PIC_POKEMANIAC            25
#define TRAINER_PIC_MAGMA_GRUNT_F         26
#define TRAINER_PIC_GUITARIST             27
#define TRAINER_PIC_KINDLER               28
#define TRAINER_PIC_CAMPER                29
#define TRAINER_PIC_PICNICKER             30
#define TRAINER_PIC_BUG_MANIAC            31
#define TRAINER_PIC_POKEMON_BREEDER_M     32
#define TRAINER_PIC_PSYCHIC_M             33
#define TRAINER_PIC_PSYCHIC_F             34
#define TRAINER_PIC_GENTLEMAN             35
#define TRAINER_PIC_ELITE_FOUR_SIDNEY     36
#define TRAINER_PIC_ELITE_FOUR_PHOEBE     37
#define TRAINER_PIC_ELITE_FOUR_GLACIA     38
#define TRAINER_PIC_ELITE_FOUR_DRAKE      39
#define TRAINER_PIC_LEADER_ROXANNE        40
#define TRAINER_PIC_LEADER_BRAWLY         41
#define TRAINER_PIC_LEADER_WATTSON        42
#define TRAINER_PIC_LEADER_FLANNERY       43
#define TRAINER_PIC_LEADER_NORMAN         44
#define TRAINER_PIC_LEADER_WINONA         45
#define TRAINER_PIC_LEADER_TATE_AND_LIZA  46
#define TRAINER_PIC_LEADER_JUAN           47
#define TRAINER_PIC_SCHOOL_KID_M          48
#define TRAINER_PIC_SCHOOL_KID_F          49
#define TRAINER_PIC_SR_AND_JR             50
#define TRAINER_PIC_POKEFAN_M             51
#define TRAINER_PIC_POKEFAN_F             52
#define TRAINER_PIC_YOUNGSTER             53
#define TRAINER_PIC_CHAMPION_WALLACE      54
#define TRAINER_PIC_FISHERMAN             55
#define TRAINER_PIC_CYCLING_TRIATHLETE_M  56
#define TRAINER_PIC_CYCLING_TRIATHLETE_F  57
#define TRAINER_PIC_RUNNING_TRIATHLETE_M  58
#define TRAINER_PIC_RUNNING_TRIATHLETE_F  59
#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60
#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61
#define TRAINER_PIC_DRAGON_TAMER          62
#define TRAINER_PIC_NINJA_BOY             63
#define TRAINER_PIC_BATTLE_GIRL           64
#define TRAINER_PIC_PARASOL_LADY          65
#define TRAINER_PIC_SWIMMER_F             66
#define TRAINER_PIC_TWINS                 67
#define TRAINER_PIC_SAILOR                68
#define TRAINER_PIC_MAGMA_ADMIN           69
#define TRAINER_PIC_WALLY                 70
#define TRAINER_PIC_BRENDAN               71
#define TRAINER_PIC_MAY                   72
#define TRAINER_PIC_BUG_CATCHER           73
#define TRAINER_PIC_POKEMON_RANGER_M      74
#define TRAINER_PIC_POKEMON_RANGER_F      75
#define TRAINER_PIC_MAGMA_LEADER_MAXIE    76
#define TRAINER_PIC_LASS                  77
#define TRAINER_PIC_YOUNG_COUPLE          78
#define TRAINER_PIC_OLD_COUPLE            79
#define TRAINER_PIC_SIS_AND_BRO           80
#define TRAINER_PIC_STEVEN                81
#define TRAINER_PIC_SALON_MAIDEN_ANABEL   82
#define TRAINER_PIC_DOME_ACE_TUCKER       83
#define TRAINER_PIC_PALACE_MAVEN_SPENSER  84
#define TRAINER_PIC_ARENA_TYCOON_GRETA    85
#define TRAINER_PIC_FACTORY_HEAD_NOLAND   86
#define TRAINER_PIC_PIKE_QUEEN_LUCY       87
#define TRAINER_PIC_PYRAMID_KING_BRANDON  88
#define TRAINER_PIC_RED                   89
#define TRAINER_PIC_LEAF                  90
#define TRAINER_PIC_RS_BRENDAN            91
#define TRAINER_PIC_RS_MAY                92

// RogueNote: Extra trainer pics
#define TRAINER_PIC_KANTO_BROCK           (TRAINER_PIC_RS_MAY + 1)
#define TRAINER_PIC_KANTO_MISTY           (TRAINER_PIC_RS_MAY + 2)
#define TRAINER_PIC_KANTO_LTSURGE         (TRAINER_PIC_RS_MAY + 3)
#define TRAINER_PIC_KANTO_ERIKA           (TRAINER_PIC_RS_MAY + 4)
#define TRAINER_PIC_KANTO_KOGA            (TRAINER_PIC_RS_MAY + 5)
#define TRAINER_PIC_KANTO_SABRINA         (TRAINER_PIC_RS_MAY + 6)
#define TRAINER_PIC_KANTO_BLAINE          (TRAINER_PIC_RS_MAY + 7)
#define TRAINER_PIC_KANTO_GIOVANNI        (TRAINER_PIC_RS_MAY + 8)

#define TRAINER_PIC_KANTO_LORELEI         (TRAINER_PIC_RS_MAY + 9)
#define TRAINER_PIC_KANTO_BRUNO           (TRAINER_PIC_RS_MAY + 10)
#define TRAINER_PIC_KANTO_AGATHA          (TRAINER_PIC_RS_MAY + 11)
#define TRAINER_PIC_KANTO_LANCE           (TRAINER_PIC_RS_MAY + 12)

#define TRAINER_PIC_KANTO_BLUE            (TRAINER_PIC_RS_MAY + 13)
#define TRAINER_PIC_KANTO_PROFOAK         (TRAINER_PIC_RS_MAY + 14)

#define TRAINER_PIC_JOHTO_FALKNER         (TRAINER_PIC_KANTO_PROFOAK + 1)
#define TRAINER_PIC_JOHTO_BUGSY           (TRAINER_PIC_KANTO_PROFOAK + 2)
#define TRAINER_PIC_JOHTO_WHITNEY         (TRAINER_PIC_KANTO_PROFOAK + 3)
#define TRAINER_PIC_JOHTO_MORTY           (TRAINER_PIC_KANTO_PROFOAK + 4)
#define TRAINER_PIC_JOHTO_CHUCK           (TRAINER_PIC_KANTO_PROFOAK + 5)
#define TRAINER_PIC_JOHTO_JASMINE         (TRAINER_PIC_KANTO_PROFOAK + 6)
#define TRAINER_PIC_JOHTO_PRYCE           (TRAINER_PIC_KANTO_PROFOAK + 7)
#define TRAINER_PIC_JOHTO_CLAIR           (TRAINER_PIC_KANTO_PROFOAK + 8)

#define TRAINER_PIC_JOHTO_WILL            (TRAINER_PIC_KANTO_PROFOAK + 9)
#define TRAINER_PIC_JOHTO_KAREN           (TRAINER_PIC_KANTO_PROFOAK + 10)

#define TRAINER_PIC_JOHTO_RED             (TRAINER_PIC_KANTO_PROFOAK + 11)


#define TRAINER_PIC_SINNOH_AARON          (TRAINER_PIC_JOHTO_RED + 1)
#define TRAINER_PIC_SINNOH_BERTHA         (TRAINER_PIC_JOHTO_RED + 2)
#define TRAINER_PIC_SINNOH_BYRON          (TRAINER_PIC_JOHTO_RED + 3)
#define TRAINER_PIC_SINNOH_CANDICE        (TRAINER_PIC_JOHTO_RED + 4)
#define TRAINER_PIC_SINNOH_CRASHER_WAKE   (TRAINER_PIC_JOHTO_RED + 5)
#define TRAINER_PIC_SINNOH_CYNTHIA        (TRAINER_PIC_JOHTO_RED + 6)
#define TRAINER_PIC_SINNOH_FANTINA        (TRAINER_PIC_JOHTO_RED + 7)
#define TRAINER_PIC_SINNOH_FLINT          (TRAINER_PIC_JOHTO_RED + 8)
#define TRAINER_PIC_SINNOH_GARDENIA       (TRAINER_PIC_JOHTO_RED + 9)
#define TRAINER_PIC_SINNOH_LUCIAN         (TRAINER_PIC_JOHTO_RED + 10)
#define TRAINER_PIC_SINNOH_MAYLENE        (TRAINER_PIC_JOHTO_RED + 11)
#define TRAINER_PIC_SINNOH_ROARK          (TRAINER_PIC_JOHTO_RED + 12)
#define TRAINER_PIC_SINNOH_VOLKNER        (TRAINER_PIC_JOHTO_RED + 13)

#define TRAINER_PIC_UNOVA_ALDER           (TRAINER_PIC_SINNOH_VOLKNER + 1)
#define TRAINER_PIC_UNOVA_BRYCEN          (TRAINER_PIC_SINNOH_VOLKNER + 2)
#define TRAINER_PIC_UNOVA_BURGH           (TRAINER_PIC_SINNOH_VOLKNER + 3)
#define TRAINER_PIC_UNOVA_CAITLIN         (TRAINER_PIC_SINNOH_VOLKNER + 4)
#define TRAINER_PIC_UNOVA_CHILI           (TRAINER_PIC_SINNOH_VOLKNER + 5)
#define TRAINER_PIC_UNOVA_CILAN           (TRAINER_PIC_SINNOH_VOLKNER + 6)
#define TRAINER_PIC_UNOVA_CLAY            (TRAINER_PIC_SINNOH_VOLKNER + 7)
#define TRAINER_PIC_UNOVA_CRESS           (TRAINER_PIC_SINNOH_VOLKNER + 8)
#define TRAINER_PIC_UNOVA_DRAYDEN         (TRAINER_PIC_SINNOH_VOLKNER + 9)
#define TRAINER_PIC_UNOVA_ELESA           (TRAINER_PIC_SINNOH_VOLKNER + 10)
#define TRAINER_PIC_UNOVA_GRIMSLEY        (TRAINER_PIC_SINNOH_VOLKNER + 11)
#define TRAINER_PIC_UNOVA_IRIS            (TRAINER_PIC_SINNOH_VOLKNER + 12)
#define TRAINER_PIC_UNOVA_LENORA          (TRAINER_PIC_SINNOH_VOLKNER + 13)
#define TRAINER_PIC_UNOVA_MARLON          (TRAINER_PIC_SINNOH_VOLKNER + 14)
#define TRAINER_PIC_UNOVA_MARSHAL         (TRAINER_PIC_SINNOH_VOLKNER + 15)
#define TRAINER_PIC_UNOVA_ROXIE           (TRAINER_PIC_SINNOH_VOLKNER + 16)
#define TRAINER_PIC_UNOVA_SHAUNTAL        (TRAINER_PIC_SINNOH_VOLKNER + 17)
#define TRAINER_PIC_UNOVA_SKYLA           (TRAINER_PIC_SINNOH_VOLKNER + 18)

#define TRAINER_PIC_KALOS_CLEMONT         (TRAINER_PIC_UNOVA_SKYLA + 1)
#define TRAINER_PIC_KALOS_DIANTHA         (TRAINER_PIC_UNOVA_SKYLA + 2)
#define TRAINER_PIC_KALOS_DRASNA          (TRAINER_PIC_UNOVA_SKYLA + 3)
#define TRAINER_PIC_KALOS_GRANT           (TRAINER_PIC_UNOVA_SKYLA + 4)
#define TRAINER_PIC_KALOS_KORRINA         (TRAINER_PIC_UNOVA_SKYLA + 5)
#define TRAINER_PIC_KALOS_MALVA           (TRAINER_PIC_UNOVA_SKYLA + 6)
#define TRAINER_PIC_KALOS_OLYMPIA         (TRAINER_PIC_UNOVA_SKYLA + 7)
#define TRAINER_PIC_KALOS_RAMOS           (TRAINER_PIC_UNOVA_SKYLA + 8)
#define TRAINER_PIC_KALOS_SIEBOLD         (TRAINER_PIC_UNOVA_SKYLA + 9)
#define TRAINER_PIC_KALOS_VALERIE         (TRAINER_PIC_UNOVA_SKYLA + 10)
#define TRAINER_PIC_KALOS_VIOLA           (TRAINER_PIC_UNOVA_SKYLA + 11)
#define TRAINER_PIC_KALOS_WIKSTROM        (TRAINER_PIC_UNOVA_SKYLA + 12)
#define TRAINER_PIC_KALOS_WULFRIC         (TRAINER_PIC_UNOVA_SKYLA + 13)

#define TRAINER_PIC_ALOLA_ACEROLA         (TRAINER_PIC_KALOS_WULFRIC + 1)
#define TRAINER_PIC_ALOLA_HALA            (TRAINER_PIC_KALOS_WULFRIC + 2)
#define TRAINER_PIC_ALOLA_HAPU            (TRAINER_PIC_KALOS_WULFRIC + 3)
#define TRAINER_PIC_ALOLA_ILIMA           (TRAINER_PIC_KALOS_WULFRIC + 4)
#define TRAINER_PIC_ALOLA_KAHILI          (TRAINER_PIC_KALOS_WULFRIC + 5)
#define TRAINER_PIC_ALOLA_KIAWE           (TRAINER_PIC_KALOS_WULFRIC + 6)
#define TRAINER_PIC_ALOLA_KUKUI           (TRAINER_PIC_KALOS_WULFRIC + 7)
#define TRAINER_PIC_ALOLA_LANA            (TRAINER_PIC_KALOS_WULFRIC + 8)
#define TRAINER_PIC_ALOLA_MALLOW          (TRAINER_PIC_KALOS_WULFRIC + 9)
#define TRAINER_PIC_ALOLA_MINA            (TRAINER_PIC_KALOS_WULFRIC + 10)
#define TRAINER_PIC_ALOLA_MOLAYNE         (TRAINER_PIC_KALOS_WULFRIC + 11)
#define TRAINER_PIC_ALOLA_NANU            (TRAINER_PIC_KALOS_WULFRIC + 12)
#define TRAINER_PIC_ALOLA_OLIVIA          (TRAINER_PIC_KALOS_WULFRIC + 13)
#define TRAINER_PIC_ALOLA_SOPHOCLES       (TRAINER_PIC_KALOS_WULFRIC + 14)

#define TRAINER_PIC_GALAR_ALLISTER        (TRAINER_PIC_ALOLA_SOPHOCLES + 1)
#define TRAINER_PIC_GALAR_BEA             (TRAINER_PIC_ALOLA_SOPHOCLES + 2)
#define TRAINER_PIC_GALAR_GORDIE          (TRAINER_PIC_ALOLA_SOPHOCLES + 3)
#define TRAINER_PIC_GALAR_KABU            (TRAINER_PIC_ALOLA_SOPHOCLES + 4)
#define TRAINER_PIC_GALAR_LEON            (TRAINER_PIC_ALOLA_SOPHOCLES + 5)
#define TRAINER_PIC_GALAR_MELONY          (TRAINER_PIC_ALOLA_SOPHOCLES + 6)
#define TRAINER_PIC_GALAR_MILO            (TRAINER_PIC_ALOLA_SOPHOCLES + 7)
#define TRAINER_PIC_GALAR_NESSA           (TRAINER_PIC_ALOLA_SOPHOCLES + 8)
#define TRAINER_PIC_GALAR_OPAL            (TRAINER_PIC_ALOLA_SOPHOCLES + 9)
#define TRAINER_PIC_GALAR_PIERS           (TRAINER_PIC_ALOLA_SOPHOCLES + 10)
#define TRAINER_PIC_GALAR_RAIHAN          (TRAINER_PIC_ALOLA_SOPHOCLES + 11)

#define TRAINER_PIC_PALDEA_BRASSIUS       (TRAINER_PIC_GALAR_RAIHAN + 1)
#define TRAINER_PIC_PALDEA_GEETA          (TRAINER_PIC_GALAR_RAIHAN + 2)
#define TRAINER_PIC_PALDEA_GRUSHA         (TRAINER_PIC_GALAR_RAIHAN + 3)
#define TRAINER_PIC_PALDEA_HASSEL         (TRAINER_PIC_GALAR_RAIHAN + 4)
#define TRAINER_PIC_PALDEA_IONO           (TRAINER_PIC_GALAR_RAIHAN + 5)
#define TRAINER_PIC_PALDEA_KATY           (TRAINER_PIC_GALAR_RAIHAN + 6)
#define TRAINER_PIC_PALDEA_KOFU           (TRAINER_PIC_GALAR_RAIHAN + 7)
#define TRAINER_PIC_PALDEA_LARRY          (TRAINER_PIC_GALAR_RAIHAN + 8)
#define TRAINER_PIC_PALDEA_POPPY          (TRAINER_PIC_GALAR_RAIHAN + 9)
#define TRAINER_PIC_PALDEA_RIKA           (TRAINER_PIC_GALAR_RAIHAN + 10)
#define TRAINER_PIC_PALDEA_RYME           (TRAINER_PIC_GALAR_RAIHAN + 11)
#define TRAINER_PIC_PALDEA_TULIP          (TRAINER_PIC_GALAR_RAIHAN + 12)

#define TRAINER_PIC_ETHAN                 (TRAINER_PIC_PALDEA_TULIP + 1)
#define TRAINER_PIC_LYRA                  (TRAINER_PIC_PALDEA_TULIP + 2)
#define TRAINER_PIC_LUCAS                 (TRAINER_PIC_PALDEA_TULIP + 3)
#define TRAINER_PIC_DAWN                  (TRAINER_PIC_PALDEA_TULIP + 4)
#define TRAINER_PIC_HILBERT               (TRAINER_PIC_PALDEA_TULIP + 5)
#define TRAINER_PIC_HILDA                 (TRAINER_PIC_PALDEA_TULIP + 6)
#define TRAINER_PIC_NATE                  (TRAINER_PIC_PALDEA_TULIP + 7)
#define TRAINER_PIC_ROSA                  (TRAINER_PIC_PALDEA_TULIP + 8)
#define TRAINER_PIC_CALEM                 (TRAINER_PIC_PALDEA_TULIP + 9)
#define TRAINER_PIC_SERENA                (TRAINER_PIC_PALDEA_TULIP + 10)
#define TRAINER_PIC_ELIO                  (TRAINER_PIC_PALDEA_TULIP + 11)
#define TRAINER_PIC_SELENE                (TRAINER_PIC_PALDEA_TULIP + 12)
#define TRAINER_PIC_VICTOR                (TRAINER_PIC_PALDEA_TULIP + 13)
#define TRAINER_PIC_GLORIA                (TRAINER_PIC_PALDEA_TULIP + 14)
#define TRAINER_PIC_FLORIAN               (TRAINER_PIC_PALDEA_TULIP + 15)
#define TRAINER_PIC_JULIANA               (TRAINER_PIC_PALDEA_TULIP + 16)

#define TRAINER_PIC_RIVAL_RED             (TRAINER_PIC_JULIANA + 1)
#define TRAINER_PIC_RIVAL_LEAF            (TRAINER_PIC_JULIANA + 2)
#define TRAINER_PIC_RIVAL_ETHAN           (TRAINER_PIC_JULIANA + 3)
#define TRAINER_PIC_RIVAL_LYRA            (TRAINER_PIC_JULIANA + 4)
#define TRAINER_PIC_RIVAL_BRENDAN         (TRAINER_PIC_JULIANA + 5)
#define TRAINER_PIC_RIVAL_MAY             (TRAINER_PIC_JULIANA + 6)
#define TRAINER_PIC_RIVAL_LUCAS           (TRAINER_PIC_JULIANA + 7)
#define TRAINER_PIC_RIVAL_DAWN            (TRAINER_PIC_JULIANA + 8)
#define TRAINER_PIC_RIVAL_HILBERT         (TRAINER_PIC_JULIANA + 9)
#define TRAINER_PIC_RIVAL_HILDA           (TRAINER_PIC_JULIANA + 10)
#define TRAINER_PIC_RIVAL_NATE            (TRAINER_PIC_JULIANA + 11)
#define TRAINER_PIC_RIVAL_ROSA            (TRAINER_PIC_JULIANA + 12)
#define TRAINER_PIC_RIVAL_CALEM           (TRAINER_PIC_JULIANA + 13)
#define TRAINER_PIC_RIVAL_SERENA          (TRAINER_PIC_JULIANA + 14)
#define TRAINER_PIC_RIVAL_ELIO            (TRAINER_PIC_JULIANA + 15)
#define TRAINER_PIC_RIVAL_SELENE          (TRAINER_PIC_JULIANA + 16)
#define TRAINER_PIC_RIVAL_VICTOR          (TRAINER_PIC_JULIANA + 17)
#define TRAINER_PIC_RIVAL_GLORIA          (TRAINER_PIC_JULIANA + 18)
#define TRAINER_PIC_RIVAL_FLORIAN         (TRAINER_PIC_JULIANA + 19)
#define TRAINER_PIC_RIVAL_JULIANA         (TRAINER_PIC_JULIANA + 20)

#define TRAINER_PIC_RIVAL_SILVER          (TRAINER_PIC_RIVAL_JULIANA + 1)
#define TRAINER_PIC_RIVAL_BARRY           (TRAINER_PIC_RIVAL_JULIANA + 2)
#define TRAINER_PIC_RIVAL_BIANCA          (TRAINER_PIC_RIVAL_JULIANA + 3)
#define TRAINER_PIC_RIVAL_CHEREN          (TRAINER_PIC_RIVAL_JULIANA + 4)
#define TRAINER_PIC_RIVAL_N               (TRAINER_PIC_RIVAL_JULIANA + 5)
#define TRAINER_PIC_RIVAL_HUGH            (TRAINER_PIC_RIVAL_JULIANA + 6)
#define TRAINER_PIC_RIVAL_SHAUNA          (TRAINER_PIC_RIVAL_JULIANA + 7)
#define TRAINER_PIC_RIVAL_TREVOR          (TRAINER_PIC_RIVAL_JULIANA + 8)
#define TRAINER_PIC_RIVAL_TIERNO          (TRAINER_PIC_RIVAL_JULIANA + 9)
#define TRAINER_PIC_RIVAL_HAU             (TRAINER_PIC_RIVAL_JULIANA + 10)
#define TRAINER_PIC_RIVAL_GLADION         (TRAINER_PIC_RIVAL_JULIANA + 11)
#define TRAINER_PIC_RIVAL_HOP             (TRAINER_PIC_RIVAL_JULIANA + 12)
#define TRAINER_PIC_RIVAL_MARNIE          (TRAINER_PIC_RIVAL_JULIANA + 13)
#define TRAINER_PIC_RIVAL_BEDE            (TRAINER_PIC_RIVAL_JULIANA + 14)
#define TRAINER_PIC_RIVAL_ARVEN           (TRAINER_PIC_RIVAL_JULIANA + 15)
#define TRAINER_PIC_RIVAL_NEMONA          (TRAINER_PIC_RIVAL_JULIANA + 16)
#define TRAINER_PIC_RIVAL_PENNY           (TRAINER_PIC_RIVAL_JULIANA + 17)

#define TRAINER_PIC_POKABBIE              (TRAINER_PIC_RIVAL_PENNY + 1)
#define TRAINER_PIC_POKABBIE_JUST_DITTO   (TRAINER_PIC_RIVAL_PENNY + 2) // Just used for battle transition
#define TRAINER_PIC_POKABBIE_AND_DITTO    (TRAINER_PIC_RIVAL_PENNY + 3)
#define TRAINER_PIC_GLITCH_KATE           (TRAINER_PIC_RIVAL_PENNY + 4)
#define TRAINER_PIC_GLITCH_TAILS          (TRAINER_PIC_RIVAL_PENNY + 5)
#define TRAINER_PIC_GLITCH_ERMA           (TRAINER_PIC_RIVAL_PENNY + 6)
#define TRAINER_PIC_GLITCH_RANDOMAN       (TRAINER_PIC_RIVAL_PENNY + 7)
#define TRAINER_PIC_GLITCH_RAVEN          TRAINER_PIC_POKEMON_BREEDER_F

#define TRAINER_PIC_COMMUNITY_ZEFA              (TRAINER_PIC_GLITCH_RANDOMAN + 1)
#define TRAINER_PIC_COMMUNITY_LIGHTNINGSTRIKE7  (TRAINER_PIC_GLITCH_RANDOMAN + 2)
#define TRAINER_PIC_COMMUNITY_NACHOLORD         (TRAINER_PIC_GLITCH_RANDOMAN + 3)
#define TRAINER_PIC_COMMUNITY_LATERMANNER       (TRAINER_PIC_GLITCH_RANDOMAN + 4)
#define TRAINER_PIC_COMMUNITY_DOLPHIN           (TRAINER_PIC_GLITCH_RANDOMAN + 5)
#define TRAINER_PIC_COMMUNITY_UNUSED1           (TRAINER_PIC_GLITCH_RANDOMAN + 6)

#define TRAINER_PIC_ROCKET_GRUNT_M        (TRAINER_PIC_COMMUNITY_UNUSED1 + 1)
#define TRAINER_PIC_ROCKET_GRUNT_F        (TRAINER_PIC_COMMUNITY_UNUSED1 + 2)
#define TRAINER_PIC_SCIENTIST             (TRAINER_PIC_COMMUNITY_UNUSED1 + 3)
#define TRAINER_PIC_BIKER                 (TRAINER_PIC_COMMUNITY_UNUSED1 + 4)

#define TRAINER_PIC_GALACTIC_GRUNT_M      (TRAINER_PIC_BIKER + 1)
#define TRAINER_PIC_GALACTIC_GRUNT_F      (TRAINER_PIC_BIKER + 2)
#define TRAINER_PIC_GALACTIC_CYRUS        (TRAINER_PIC_BIKER + 3)

// Special cases
#define TRAINER_PIC_PLAYER_AVATAR           (TRAINER_PIC_GALACTIC_CYRUS + 1)
#define TRAINER_PIC_PLAYER_OPPOSITE_AVATAR  (TRAINER_PIC_GALACTIC_CYRUS + 2)

// The player back pics are assumed to alternate according to the gender values (MALE/FEMALE)
#define TRAINER_BACK_PIC_NONE                   0
#define TRAINER_BACK_PIC_BRENDAN                1
#define TRAINER_BACK_PIC_MAY                    2
#define TRAINER_BACK_PIC_RED                    3
#define TRAINER_BACK_PIC_LEAF                   4
#define TRAINER_BACK_PIC_ETHAN                  5
#define TRAINER_BACK_PIC_LYRA                   6
#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN  7
#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY      8
#define TRAINER_BACK_PIC_WALLY                  9
#define TRAINER_BACK_PIC_STEVEN                 10
#define TRAINER_BACK_PIC_LUCAS                  11
#define TRAINER_BACK_PIC_DAWN                   12
#define TRAINER_BACK_PIC_COMMUNITY_ZEFA         13
#define TRAINER_BACK_PIC_COMMUNITY_NACHOLORD    14

#define TRAINER_BACK_PIC_PLAYER                 0xFF

#define FACILITY_CLASS_HIKER                 0x0
#define FACILITY_CLASS_AQUA_GRUNT_M          0x1
#define FACILITY_CLASS_PKMN_BREEDER_F        0x2
#define FACILITY_CLASS_COOLTRAINER_M         0x3
#define FACILITY_CLASS_BIRD_KEEPER           0x4
#define FACILITY_CLASS_COLLECTOR             0x5
#define FACILITY_CLASS_AQUA_GRUNT_F          0x6
#define FACILITY_CLASS_SWIMMER_M             0x7
#define FACILITY_CLASS_MAGMA_GRUNT_M         0x8
#define FACILITY_CLASS_EXPERT_M              0x9
#define FACILITY_CLASS_BLACK_BELT            0xa
#define FACILITY_CLASS_AQUA_LEADER_ARCHIE    0xb
#define FACILITY_CLASS_HEX_MANIAC            0xc
#define FACILITY_CLASS_AROMA_LADY            0xd
#define FACILITY_CLASS_RUIN_MANIAC           0xe
#define FACILITY_CLASS_INTERVIEWER           0xf
#define FACILITY_CLASS_TUBER_F               0x10
#define FACILITY_CLASS_TUBER_M               0x11
#define FACILITY_CLASS_COOLTRAINER_F         0x12
#define FACILITY_CLASS_LADY                  0x13
#define FACILITY_CLASS_BEAUTY                0x14
#define FACILITY_CLASS_RICH_BOY              0x15
#define FACILITY_CLASS_EXPERT_F              0x16
#define FACILITY_CLASS_POKEMANIAC            0x17
#define FACILITY_CLASS_MAGMA_GRUNT_F         0x18
#define FACILITY_CLASS_GUITARIST             0x19
#define FACILITY_CLASS_KINDLER               0x1a
#define FACILITY_CLASS_CAMPER                0x1b
#define FACILITY_CLASS_PICNICKER             0x1c
#define FACILITY_CLASS_BUG_MANIAC            0x1d
#define FACILITY_CLASS_PSYCHIC_M             0x1e
#define FACILITY_CLASS_PSYCHIC_F             0x1f
#define FACILITY_CLASS_GENTLEMAN             0x20
#define FACILITY_CLASS_ELITE_FOUR_SIDNEY     0x21
#define FACILITY_CLASS_ELITE_FOUR_PHOEBE     0x22
#define FACILITY_CLASS_LEADER_ROXANNE        0x23
#define FACILITY_CLASS_LEADER_BRAWLY         0x24
#define FACILITY_CLASS_LEADER_TATE_AND_LIZA  0x25
#define FACILITY_CLASS_SCHOOL_KID_M          0x26
#define FACILITY_CLASS_SCHOOL_KID_F          0x27
#define FACILITY_CLASS_SR_AND_JR             0x28
#define FACILITY_CLASS_POKEFAN_M             0x29
#define FACILITY_CLASS_POKEFAN_F             0x2a
#define FACILITY_CLASS_YOUNGSTER             0x2b
#define FACILITY_CLASS_CHAMPION_WALLACE      0x2c
#define FACILITY_CLASS_FISHERMAN             0x2d
#define FACILITY_CLASS_CYCLING_TRIATHLETE_M  0x2e
#define FACILITY_CLASS_CYCLING_TRIATHLETE_F  0x2f
#define FACILITY_CLASS_RUNNING_TRIATHLETE_M  0x30
#define FACILITY_CLASS_RUNNING_TRIATHLETE_F  0x31
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x32
#define FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x33
#define FACILITY_CLASS_DRAGON_TAMER          0x34
#define FACILITY_CLASS_NINJA_BOY             0x35
#define FACILITY_CLASS_BATTLE_GIRL           0x36
#define FACILITY_CLASS_PARASOL_LADY          0x37
#define FACILITY_CLASS_SWIMMER_F             0x38
#define FACILITY_CLASS_TWINS                 0x39
#define FACILITY_CLASS_SAILOR                0x3a
#define FACILITY_CLASS_WALLY                 0x3b
#define FACILITY_CLASS_BRENDAN               0x3c
#define FACILITY_CLASS_BRENDAN_2             0x3d
#define FACILITY_CLASS_BRENDAN_3             0x3e
#define FACILITY_CLASS_MAY                   0x3f
#define FACILITY_CLASS_MAY_2                 0x40
#define FACILITY_CLASS_MAY_3                 0x41
#define FACILITY_CLASS_PKMN_BREEDER_M        0x42
#define FACILITY_CLASS_BUG_CATCHER           0x43
#define FACILITY_CLASS_PKMN_RANGER_M         0x44
#define FACILITY_CLASS_PKMN_RANGER_F         0x45
#define FACILITY_CLASS_MAGMA_LEADER_MAXIE    0x46
#define FACILITY_CLASS_LASS                  0x47
#define FACILITY_CLASS_YOUNG_COUPLE          0x48
#define FACILITY_CLASS_OLD_COUPLE            0x49
#define FACILITY_CLASS_SIS_AND_BRO           0x4a
#define FACILITY_CLASS_STEVEN                0x4b
#define FACILITY_CLASS_SALON_MAIDEN_ANABEL   0x4c
#define FACILITY_CLASS_DOME_ACE_TUCKER       0x4d
#define FACILITY_CLASS_RED                   0x4e
#define FACILITY_CLASS_LEAF                  0x4f
#define FACILITY_CLASS_RS_BRENDAN            0x50
#define FACILITY_CLASS_RS_MAY                0x51
#define FACILITY_CLASS_ETHAN                 0x52
#define FACILITY_CLASS_LYRA                  0x53

#define FACILITY_CLASSES_COUNT               0x54

#define RS_FACILITY_CLASS_AQUA_LEADER_ARCHIE    0x0
#define RS_FACILITY_CLASS_AQUA_GRUNT_M          0x1
#define RS_FACILITY_CLASS_AQUA_GRUNT_F          0x2
#define RS_FACILITY_CLASS_AROMA_LADY            0x3
#define RS_FACILITY_CLASS_RUIN_MANIAC           0x4
#define RS_FACILITY_CLASS_INTERVIEWER           0x5
#define RS_FACILITY_CLASS_TUBER_F               0x6
#define RS_FACILITY_CLASS_TUBER_M               0x7
#define RS_FACILITY_CLASS_COOLTRAINER_M         0x8
#define RS_FACILITY_CLASS_COOLTRAINER_F         0x9
#define RS_FACILITY_CLASS_HEX_MANIAC            0xA
#define RS_FACILITY_CLASS_LADY                  0xB
#define RS_FACILITY_CLASS_BEAUTY                0xC
#define RS_FACILITY_CLASS_RICH_BOY              0xD
#define RS_FACILITY_CLASS_POKEMANIAC            0xE
#define RS_FACILITY_CLASS_SWIMMER_M             0xF
#define RS_FACILITY_CLASS_BLACK_BELT            0x10
#define RS_FACILITY_CLASS_GUITARIST             0x11
#define RS_FACILITY_CLASS_KINDLER               0x12
#define RS_FACILITY_CLASS_CAMPER                0x13
#define RS_FACILITY_CLASS_BUG_MANIAC            0x14
#define RS_FACILITY_CLASS_PSYCHIC_M             0x15
#define RS_FACILITY_CLASS_PSYCHIC_F             0x16
#define RS_FACILITY_CLASS_GENTLEMAN             0x17
#define RS_FACILITY_CLASS_ELITE_FOUR_M          0x18
#define RS_FACILITY_CLASS_ELITE_FOUR_F          0x19
#define RS_FACILITY_CLASS_LEADER_F              0x1A
#define RS_FACILITY_CLASS_LEADER_M              0x1B
#define RS_FACILITY_CLASS_LEADER_MF             0x1C
#define RS_FACILITY_CLASS_SCHOOL_KID_M          0x1D
#define RS_FACILITY_CLASS_SCHOOL_KID_F          0x1E
#define RS_FACILITY_CLASS_SR_AND_JR             0x1F
#define RS_FACILITY_CLASS_POKEFAN_M             0x20
#define RS_FACILITY_CLASS_POKEFAN_F             0x21
#define RS_FACILITY_CLASS_EXPERT_M              0x22
#define RS_FACILITY_CLASS_EXPERT_F              0x23
#define RS_FACILITY_CLASS_YOUNGSTER             0x24
#define RS_FACILITY_CLASS_CHAMPION              0x25
#define RS_FACILITY_CLASS_FISHERMAN             0x26
#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_M  0x27
#define RS_FACILITY_CLASS_CYCLING_TRIATHLETE_F  0x28
#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_M  0x29
#define RS_FACILITY_CLASS_RUNNING_TRIATHLETE_F  0x2A
#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_M 0x2B
#define RS_FACILITY_CLASS_SWIMMING_TRIATHLETE_F 0x2C
#define RS_FACILITY_CLASS_DRAGON_TAMER          0x2D
#define RS_FACILITY_CLASS_BIRD_KEEPER           0x2E
#define RS_FACILITY_CLASS_NINJA_BOY             0x2F
#define RS_FACILITY_CLASS_BATTLE_GIRL           0x30
#define RS_FACILITY_CLASS_PARASOL_LADY          0x31
#define RS_FACILITY_CLASS_SWIMMER_F             0x32
#define RS_FACILITY_CLASS_PICNICKER             0x33
#define RS_FACILITY_CLASS_TWINS                 0x34
#define RS_FACILITY_CLASS_SAILOR                0x35
#define RS_FACILITY_CLASS_BOARDER_1             0x36
#define RS_FACILITY_CLASS_BOARDER_2             0x37
#define RS_FACILITY_CLASS_COLLECTOR             0x38
#define RS_FACILITY_CLASS_WALLY                 0x39
#define RS_FACILITY_CLASS_BRENDAN_1             0x3A
#define RS_FACILITY_CLASS_BRENDAN_2             0x3B
#define RS_FACILITY_CLASS_BRENDAN_3             0x3C
#define RS_FACILITY_CLASS_MAY_1                 0x3D
#define RS_FACILITY_CLASS_MAY_2                 0x3E
#define RS_FACILITY_CLASS_MAY_3                 0x3F
#define RS_FACILITY_CLASS_PKMN_BREEDER_M        0x40
#define RS_FACILITY_CLASS_PKMN_BREEDER_F        0x41
#define RS_FACILITY_CLASS_PKMN_RANGER_M         0x42
#define RS_FACILITY_CLASS_PKMN_RANGER_F         0x43
#define RS_FACILITY_CLASS_MAGMA_LEADER          0x44
#define RS_FACILITY_CLASS_MAGMA_GRUNT_M         0x45
#define RS_FACILITY_CLASS_MAGMA_GRUNT_F         0x46
#define RS_FACILITY_CLASS_LASS                  0x47
#define RS_FACILITY_CLASS_BUG_CATCHER           0x48
#define RS_FACILITY_CLASS_HIKER                 0x49
#define RS_FACILITY_CLASS_YOUNG_COUPLE          0x4A
#define RS_FACILITY_CLASS_OLD_COUPLE            0x4B
#define RS_FACILITY_CLASS_SIS_AND_BRO           0x4C

#define RS_FACILITY_CLASSES_COUNT               0x4D

#define TRAINER_CLASS_PKMN_TRAINER_1 0x0  // Unused
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1  // Unused
#define TRAINER_CLASS_HIKER          0x2
#define TRAINER_CLASS_TEAM_AQUA      0x3
#define TRAINER_CLASS_PKMN_BREEDER   0x4
#define TRAINER_CLASS_COOLTRAINER    0x5
#define TRAINER_CLASS_BIRD_KEEPER    0x6
#define TRAINER_CLASS_COLLECTOR      0x7
#define TRAINER_CLASS_SWIMMER_M      0x8
#define TRAINER_CLASS_TEAM_MAGMA     0x9
#define TRAINER_CLASS_EXPERT         0xa
#define TRAINER_CLASS_AQUA_ADMIN     0xb
#define TRAINER_CLASS_BLACK_BELT     0xc
#define TRAINER_CLASS_AQUA_LEADER    0xd
#define TRAINER_CLASS_HEX_MANIAC     0xe
#define TRAINER_CLASS_AROMA_LADY     0xf
#define TRAINER_CLASS_RUIN_MANIAC    0x10
#define TRAINER_CLASS_INTERVIEWER    0x11
#define TRAINER_CLASS_TUBER_F        0x12
#define TRAINER_CLASS_TUBER_M        0x13
#define TRAINER_CLASS_LADY           0x14
#define TRAINER_CLASS_BEAUTY         0x15
#define TRAINER_CLASS_RICH_BOY       0x16
#define TRAINER_CLASS_POKEMANIAC     0x17
#define TRAINER_CLASS_GUITARIST      0x18
#define TRAINER_CLASS_KINDLER        0x19
#define TRAINER_CLASS_CAMPER         0x1a
#define TRAINER_CLASS_PICNICKER      0x1b
#define TRAINER_CLASS_BUG_MANIAC     0x1c
#define TRAINER_CLASS_PSYCHIC        0x1d
#define TRAINER_CLASS_GENTLEMAN      0x1e
#define TRAINER_CLASS_ELITE_FOUR     0x1f
#define TRAINER_CLASS_LEADER         0x20
#define TRAINER_CLASS_SCHOOL_KID     0x21
#define TRAINER_CLASS_SR_AND_JR      0x22
#define TRAINER_CLASS_WINSTRATE      0x23
#define TRAINER_CLASS_POKEFAN        0x24
#define TRAINER_CLASS_YOUNGSTER      0x25
#define TRAINER_CLASS_CHAMPION       0x26
#define TRAINER_CLASS_FISHERMAN      0x27
#define TRAINER_CLASS_TRIATHLETE     0x28
#define TRAINER_CLASS_DRAGON_TAMER   0x29
#define TRAINER_CLASS_NINJA_BOY      0x2a
#define TRAINER_CLASS_BATTLE_GIRL    0x2b
#define TRAINER_CLASS_PARASOL_LADY   0x2c
#define TRAINER_CLASS_SWIMMER_F      0x2d
#define TRAINER_CLASS_TWINS          0x2e
#define TRAINER_CLASS_SAILOR         0x2f
#define TRAINER_CLASS_COOLTRAINER_2  0x30 // Used for only one trainer.
#define TRAINER_CLASS_MAGMA_ADMIN    0x31
#define TRAINER_CLASS_RIVAL          0x32
#define TRAINER_CLASS_BUG_CATCHER    0x33
#define TRAINER_CLASS_PKMN_RANGER    0x34
#define TRAINER_CLASS_MAGMA_LEADER   0x35
#define TRAINER_CLASS_LASS           0x36
#define TRAINER_CLASS_YOUNG_COUPLE   0x37
#define TRAINER_CLASS_OLD_COUPLE     0x38
#define TRAINER_CLASS_SIS_AND_BRO    0x39
#define TRAINER_CLASS_SALON_MAIDEN   0x3a
#define TRAINER_CLASS_DOME_ACE       0x3b
#define TRAINER_CLASS_PALACE_MAVEN   0x3c
#define TRAINER_CLASS_ARENA_TYCOON   0x3d
#define TRAINER_CLASS_FACTORY_HEAD   0x3e
#define TRAINER_CLASS_PIKE_QUEEN     0x3f
#define TRAINER_CLASS_PYRAMID_KING   0x40
#define TRAINER_CLASS_RS_PROTAG      0x41
#define TRAINER_CLASS_TOTEM_LEADER   0x42
#define TRAINER_CLASS_DEVELOPER             0x43
#define TRAINER_CLASS_DEVELOPER_CHAMPION    0x44
#define TRAINER_CLASS_COMMUNITY_MOD         0x45
#define TRAINER_CLASS_TEAM_ROCKET           0x46
#define TRAINER_CLASS_TEAM_ROCKET_LEADER    0x47
#define TRAINER_CLASS_BIKER                 0x48
#define TRAINER_CLASS_TEAM_GALACTIC         0x49
#define TRAINER_CLASS_TEAM_GALACTIC_LEADER  0x4A

#define TRAINER_CLASS_COUNT          0x46
#define TRAINER_ENCOUNTER_MUSIC_MALE         0 // standard male encounter music
#define TRAINER_ENCOUNTER_MUSIC_FEMALE       1 // standard female encounter music
#define TRAINER_ENCOUNTER_MUSIC_GIRL         2 // used for male Tubers and Young Couples too
#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS   3
#define TRAINER_ENCOUNTER_MUSIC_INTENSE      4
#define TRAINER_ENCOUNTER_MUSIC_COOL         5
#define TRAINER_ENCOUNTER_MUSIC_AQUA         6
#define TRAINER_ENCOUNTER_MUSIC_MAGMA        7
#define TRAINER_ENCOUNTER_MUSIC_SWIMMER      8
#define TRAINER_ENCOUNTER_MUSIC_TWINS        9 // used for other trainer classes too
#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR  10
#define TRAINER_ENCOUNTER_MUSIC_HIKER       11 // used for other trainer classes too
#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
#define TRAINER_ENCOUNTER_MUSIC_RICH        13 // Rich Boys and Gentlemen

#define F_TRAINER_FEMALE (1 << 7)

// Trainer party defines
#define TRAINER_MON_MALE    1
#define TRAINER_MON_FEMALE  2

#endif  // GUARD_TRAINERS_H
